package py.una.pol.ii.is2.dao.flota;

import py.una.pol.ii.is2.domain.flota.Vehiculo;import java.util.List;
import javax.ejb.Local;
import py.una.pol.ii.is2.domain.flota.VehiculoPlantilla;
import py.una.pol.ii.is2.domain.flota.VehiculoPlantillaPK;
/**
 *  Define la interfaz VehiculoPlantillaDAO.
 *  Las operaciones que soporta la interfaz son:
 *      a) insert --> inserción de un objeto de tipo VehiculoPlantilla
 *      b) update --> actualización de un objeto de tipo VehiculoPlantilla
 *      c) delete --> eliminación de un objeto de tipo VehiculoPlantilla
 *      d) find --> búsqueda de un objeto de tipo VehiculoPlantilla
 *      e) getListaVehiculoPlantillas --> listado de entidades de tipo VehiculoPlantilla
 *      f) getListaVehiculoPlantillasByCodVehiculo -->
 *      g) getListaVehiculoPlantillasByCodPlantilla -->
 *  @author mbenitez
 *  @date 30/04/2009
 */
@Local
public interface VehiculoPlantillaDAO {
    /**
     * Permite la inserción de un objeto de tipo VehiculoPlantilla
     * @param objeto Elemento a insertar
     * @return true si la operación tuvo éxito, en otro caso false
     * @throws java.lang.Exception
     */
    public boolean insert(VehiculoPlantilla objeto) throws Exception;
    /**
     * Permite la actualización de un objeto de tipo VehiculoPlantilla
     * @param objeto Elemento a editar
     * @return true si la operación tuvo éxito, en otro caso false
     * @throws java.lang.Exception
     */
    public boolean update(VehiculoPlantilla objeto) throws Exception;
    /**
     * Permite la eliminación de un objeto de tipo VehiculoPlantilla
     * @param objeto Elemento a eliminar
     * @return true si la operación tuvo éxito, en otro caso false
     * @throws java.lang.Exception
     */
    public boolean delete(VehiculoPlantilla objeto) throws Exception;
    /**
     * Busca un registro de la tabla VehiculoPlantilla por el código de la misma
     * @param codObjeto Código de VehiculoPlantilla a buscar
     * @return VehiculoPlantilla encontrado, en otro caso null
     * @throws java.lang.Exception
     */
    public VehiculoPlantilla find(VehiculoPlantillaPK codObjeto) throws Exception;
     /**
     * Permite recuperar una lista de entidades ordenadas por la clave primaria.
     * La lista obedece a una restricción que recibe como parámetro pudiendo éste ser null.
     *
     * @param condicion Restricción de búsqueda
     * @return Lista de entidades, en otro caso null.
     * @throws java.lang.Exception
     */
    public List<VehiculoPlantilla> getListaVehiculoPlantillas(String condicion) throws Exception;
    /**
     *
     * @param codVehiculo
     * @return
     * @throws java.lang.Exception
     */
    public List<VehiculoPlantilla> getListaVehiculoPlantillasByCodVehiculo(Vehiculo codVehiculo) throws Exception;
    /**
     * 
     * @param codPlantilla
     * @return
     * @throws java.lang.Exception
     */
    public List<VehiculoPlantilla> getListaVehiculoPlantillasByCodPlantilla(VehiculoPlantilla codPlantilla) throws Exception;
}
